from selenium.webdriver.common.by import By

from common.Utils import BlogDriver


#测试博客登录页面

class BlogLogin:
    url = ""
    driver = ""
    def __init__(self):
        self.url = "博客登录页面的网址链接"
        self.driver = BlogDriver.drievr
        #获取driver成员去common包里面的BlogDriver对象里面去获取

        # 这种写法很麻烦，我们可以在自己的类里面定义一个driver去获取到common里面的BlogDriver对象里面的driver
        # BlogDriver .driver.get(self.url)

        # self在类的方法中是一个引用，指向调用该方法的实例对象
        self.driver.get(self.url)

    #成功登录的测试函数
    def BlogSucText(self):
     self.driver.find_element(By.CSS_SELECTOR,"#用户名输入框").send_keys("输入用户名")
     self.driver.find_element(By.CSS_SELECTOR,"#密码输入框").send_keys("输入密码")
     #找到按钮点击
     self.driver.find_element(By.CSS_SELECTOR,"#按钮").click()
     #查找登录进去的页面，昵称是否存在
     BlogDriver.getScreeShot()
     self.driver.find_element(By.CSS_SELECTOR,"#昵称")
     #driver.quit() 如果和登录失败函数连用的时候，浏览器的退出需要写在登录失败的函数里面

     #登录失败的测试函数
    def BlogFailText(self):
         #因为现在在成功登录的页面，需要往回退一个页面才能进去登录的页面
         self.driver.back()
         #输入用户名和密码之前先清空输入框里面的内容
         #如果连续多次的send_keys会出现字符串拼接的问题，而不是替换
         self.driver.find_element(By.CSS_SELECTOR, "#用户名输入框").clear()
         self.driver.find_element(By.CSS_SELECTOR, "#密码输入框").clear()
         self.driver.find_element(By.CSS_SELECTOR, "#用户名输入框").send_keys("输入错误的用户名")
         self.driver.find_element(By.CSS_SELECTOR, "#密码输入框").send_keys("输入密码")

         # 如果进去了,可以把文本提取出来看看符合登录失败的清空嘛
         actual = self.driver.find_element(By.CSS_SELECTOR,"登录失败的文本").text
         #这里可以添加运行的截图，与结果对比一下哪里有问题
         BlogDriver.getScreeShot()
         #断言一下actual是否和我们预想的一样
         assert actual == "用户名或密码错误"
         self.driver.quit()



